﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace VIETPHONG
{
    public partial class Frmkhachhang : Form
    {        
        private VIETPHONGEntities db = new VIETPHONGEntities();        
        public Frmkhachhang()
        {            
            InitializeComponent();            
        }

        private void thoátToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        private void loadcombobox()
        {
            cbohttt.Items.Add("Chuyển Khoản");
            cbohttt.Items.Add("Trực tiếp");
            cbohttt.Items.Add("Ghi nợ");
            cbovungmien.Items.Add("Miền Bắc");
            cbovungmien.Items.Add("Miền Trung");
            cbovungmien.Items.Add("Miền Nam");
        }
        private void loaddulieukhachhang()
        {
            var query = from kh in db.KHACHHANGs
                        orderby kh.NGAYNHAP descending
                        select new
                        {
                            kh.MAKHACHHANG,
                            kh.TENKHACHHANG,
                            kh.DIACHI,
                            kh.MASOTHUE,
                            kh.SOTAIKHOAN,
                            kh.HINHTHUCTHANHTOAN,
                            kh.VUNGMIEN,   
                            kh.CHIETKHAU
                        };         
            dgvkhachhang.DataSource = query.ToList();
        }
        private void Frmkhachhang_Load(object sender, EventArgs e)
        {
            this.CenterToScreen();
            dgvkhachhang.AutoGenerateColumns = false;
            loadcombobox();
            loaddulieukhachhang();
        }

        private void btnthem_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(txtmakh.Text) & String.IsNullOrEmpty(txttenkh.Text) & String.IsNullOrEmpty(txtdiachi.Text))
            {
                MessageBox.Show("Thông tin cần nhập đầy đủ", "Thông báo");
            }
            else if(ChucNang.IsNumber(txtchietkhau.Text)==false)
            {
                MessageBox.Show("Chiết khấu phải nhập số", "Thông báo");
                txtchietkhau.Focus();
            }
            else
            {
                try 
                {
                    KHACHHANG kh = new KHACHHANG()
                    {
                        MAKHACHHANG = txtmakh.Text.ToUpper(),
                        TENKHACHHANG = txttenkh.Text.ToUpper(),
                        DIACHI = txtdiachi.Text,
                        MASOTHUE = txtmasothue.Text,
                        HINHTHUCTHANHTOAN = cbohttt.Text,
                        SOTAIKHOAN = txtsotk.Text,
                        VUNGMIEN = cbovungmien.Text,
                        CHIETKHAU= float.Parse(txtchietkhau.Text),
                        NGAYNHAP=DateTime.Now
                    };                    
                    ChucNang.InsertKhachHang(kh);                    
                    MessageBox.Show("Thêm thành công");
                    clear();
                }
                catch (Exception ex)
                {
                    var query = from kh in db.KHACHHANGs
                                where kh.MAKHACHHANG.Equals(txtmakh.Text)
                                select kh;
                    if(query.ToList().Count>=1)
                    {
                        MessageBox.Show("Trùng mã khách hàng", "Thông báo");
                        txtmakh.Focus();
                    }
                    var query2 = from kh in db.KHACHHANGs
                                where kh.MASOTHUE.Equals(txtmasothue.Text)
                                select kh;
                    if (query2.ToList().Count >= 1)
                    {
                        MessageBox.Show("Trùng mã số thuế", "Thông báo");
                        txtmasothue.Focus();
                    }
                    MessageBox.Show("Thêm không thành công","Thông báo");                    
                }                
            }
            loaddulieukhachhang();            
        }       
        private void btnsua_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Bạn muốn cập nhật khách hàng này ?", "Thông báo", MessageBoxButtons.YesNo);
            if (result == DialogResult.Yes)
            {
                txtmakh.Enabled = false;
                try
                {
                    KHACHHANG kh = new KHACHHANG()
                    {
                        MAKHACHHANG = txtmakh.Text.ToUpper(),
                        TENKHACHHANG = txttenkh.Text.ToUpper(),
                        DIACHI = txtdiachi.Text,
                        MASOTHUE = txtmasothue.Text,
                        HINHTHUCTHANHTOAN = cbohttt.Text,
                        SOTAIKHOAN = txtsotk.Text,
                        VUNGMIEN = cbovungmien.Text,
                        CHIETKHAU = float.Parse(txtchietkhau.Text),
                        NGAYNHAP = DateTime.Now
                    };                                  
                        ChucNang.CapNhatKhachHang(kh);
                        MessageBox.Show("Cập nhật thành công");
                        clear();
                        txtmakh.Enabled = true;
                }
                catch (Exception ex)
                {
                    var query2 = from kh in db.KHACHHANGs
                                 where kh.MASOTHUE.Equals(txtmasothue.Text)
                                 select kh;
                    if (query2.ToList().Count >= 1)
                    {
                        MessageBox.Show("Trùng mã số thuế", "Thông báo");
                        txtmasothue.Focus();
                    }
                    MessageBox.Show("Cập nhật không thành công", "Thông báo");       
                }
            }
            loaddulieukhachhang();
        }
        private void btnxoa_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Bạn muốn xóa khách hàng này ?", "Thông báo", MessageBoxButtons.YesNo);
            if (result == DialogResult.Yes)
            { 
                try
                {
                    KHACHHANG kh = new KHACHHANG()
                    {
                        MAKHACHHANG = txtmakh.Text,
                        TENKHACHHANG = txttenkh.Text,
                        DIACHI = txtdiachi.Text,
                        MASOTHUE = txtmasothue.Text,
                        HINHTHUCTHANHTOAN = cbohttt.Text,
                        SOTAIKHOAN = txtsotk.Text,
                        VUNGMIEN = cbovungmien.Text,
                        CHIETKHAU = float.Parse(txtchietkhau.Text),
                        NGAYNHAP = DateTime.Now
                    };          
                        ChucNang.XoaKhachHang(kh);
                        MessageBox.Show("Xóa Thành Công");
                           
                }
                catch (Exception ex)
                {
                    var query = from hoadon in db.HOADONs
                                where hoadon.MAKHACHHANG.Equals(txtmakh.Text)
                                select hoadon;
                    if(query.ToList().Count>=1)
                    {
                        MessageBox.Show("Khách hàng đang có hóa đơn, không xóa được");
                    }
                    MessageBox.Show("Xóa Không Được");
                }
            }
            loaddulieukhachhang();
        }

        private void sảnPhẩmToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmSanpham sp = new frmSanpham();
            sp.Show();
        }
        private void clear()
        {
            txtmakh.Text = "";
            txtmakh.Focus();
            txttenkh.Text = "";
            txtdiachi.Text = "";
            txtmasothue.Text = "";
            txtsotk.Text = "";
            txtchietkhau.Text = "";
        }
        private void button1_Click(object sender, EventArgs e)
        {
            txtmakh.Text = "";
            txtmakh.Focus();
            txttenkh.Text = "";
            txtdiachi.Text = "";
            txtmasothue.Text = "";
            txtsotk.Text = "";            
        }

        //private void button2_Click(object sender, EventArgs e)
        //{
            
        //}
        private void dgvkhachhang_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                DataGridViewRow row = new DataGridViewRow();
                row = dgvkhachhang.Rows[e.RowIndex];
                txtmakh.Text = row.Cells[0].Value.ToString();
                txttenkh.Text = row.Cells[1].Value.ToString();
                txtdiachi.Text = row.Cells[2].Value.ToString();
                txtmasothue.Text = row.Cells[3].Value.ToString();
                cbohttt.Text = row.Cells[4].Value.ToString();
                txtsotk.Text = row.Cells[5].Value.ToString();
                cbovungmien.Text = row.Cells[6].Value.ToString();
                txtchietkhau.Text = row.Cells[7].Value.ToString();
            }
            catch (Exception ex) { }
        }

        private void dgvkhachhang_CellDoubleClick_1(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                DataGridViewRow row = new DataGridViewRow();
                row = dgvkhachhang.Rows[e.RowIndex];
                frmxemhoadon frmxemhd = new frmxemhoadon();
                frmxemhd.makhachhang = row.Cells[0].Value.ToString();
                frmxemhd.tenkhachhang = row.Cells[1].Value.ToString();
                frmxemhd.diachi = row.Cells[2].Value.ToString();
                frmxemhd.masothue = row.Cells[3].Value.ToString();
                frmxemhd.hinhthucthanhtoan = row.Cells[4].Value.ToString();
                frmxemhd.sotaikhoan = row.Cells[5].Value.ToString();
                frmxemhd.vungmien = row.Cells[6].Value.ToString();
                frmxemhd.Show();
            }
            catch (Exception ex)
            {

            }
        }
        
    }
}
